//
// Created by YE on 2024/2/16.
//

#ifndef MATINTERPRETER_MEMORY_H
#define MATINTERPRETER_MEMORY_H

#include "../common/ych_object.h"
#include "instruction.h"

typedef struct VMMemory {
    Instruction VM_I[YCH_VM_INSTRUCTION_SIZE];
    Object VM_MEN[YCH_VM_MEM_SIZE];
    unsigned char VM_TAG[YCH_VM_MEM_SIZE];
    Int VM_INT_CONST[YCH_VM_INT_CONST_SIZE];
    Float VM_FLOAT_CONST[YCH_VM_FLOAT_CONST_SIZE];
    String VM_STR_CONST[YCH_VM_STRING_CONST_SIZE];
    void* VM_C_FUNC[YCH_VM_CFUNC_SIZE];
} VMMemory;
#endif //MATINTERPRETER_MEMORY_H
